Ranking data items is an important task of many applications, especially in scenarios where the number of data items being processed is large. Ranking may be used to organize a predefined set of data items, such as ranking a list of automobiles manufactured in the United States according to cost or reliability, or ranking a dynamic set of data items, such as ranking the items of a search result set. For example, searching for clothes available online for sale often returns an unmanageably large set of articles. Ranking the items by, for example, relevance to a user's search query can be as important as identifying the items based on the search terms.